package com.peas.platform.module.icims.expenditure.kpis.controller.vo;

import java.util.*;
import java.math.*;
import com.peas.platform.common.core.vo.BaseVo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.*;

@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel("额度下达单")
public class ExpenditureQuotaVo extends BaseVo {

    // （指标单表）外键
    @ApiModelProperty(value = "指标单表ID", notes = "")
    @NotNull(message = "指标单表ID不能为空")
    private Long expenditureKpiId;

    // 自动生成
    @ApiModelProperty(value = "额度下达单编码", notes = "")
    @Size(max = 100, message = "额度下达单编码不能超过100个字符")
    private String quotaCode;

    @ApiModelProperty(value = "日期", notes = "")
    private Date quotaDate;

    @ApiModelProperty(value = "下达金额", notes = "")
    private BigDecimal amount;

    // （财政项目表）多级外键
    @ApiModelProperty(value = "财政项目ID", notes = "")
    @Size(max = 200, message = "财政项目ID不能超过200个字符")
    private String expenditureFiscalId;

    // （会计科目表）多级外键
    @ApiModelProperty(value = "会计科目ID", notes = "")
    @Size(max = 200, message = "会计科目ID不能超过200个字符")
    private String expenditureSubjectId;

    // （付款账号表）外键
    @ApiModelProperty(value = "支付账户ID", notes = "")
    private Long expenditureAccountId;

    // （组织架构表）外键
    @ApiModelProperty(value = "填单人部门ID", notes = "")
    private Long submitOrganizationId;

    // （用户表）外键
    @ApiModelProperty(value = "填单人用户ID", notes = "")
    private Long submitUserId;

    @ApiModelProperty(value = "结算方式", notes = "字典取值:ExpenditureSettlement")
    @Size(max = 20, message = "结算方式不能超过20个字符")
    private String settlement;

    @ApiModelProperty(value = "状态", notes = "枚举取值:ExpenditureQuotaState")
    @Size(max = 20, message = "状态不能超过20个字符")
    private String state;

    @ApiModelProperty(value = "摘要", notes = "")
    private String summary;

}
